package com.ovidiojf.fieldplan.popule;

import static org.junit.Assert.*;

import java.util.Date;
import java.util.List;

import org.junit.Test;

import com.ovidiojf.fieldplan.atleta.Atleta;
import com.ovidiojf.fieldplan.atleta.AtletaRN;
import com.ovidiojf.fieldplan.avaliacaoFisica.AvaliacaoFisica;
import com.ovidiojf.fieldplan.avaliacaoFisica.AvaliacaoFisicaRN;
import com.ovidiojf.fieldplan.equipe.Equipe;
import com.ovidiojf.fieldplan.equipe.EquipeRN;
import com.ovidiojf.fieldplan.esporte.Esporte;
import com.ovidiojf.fieldplan.esporte.EsporteRN;
import com.ovidiojf.fieldplan.test.ConexaoTest;

public class Popule extends ConexaoTest{

	public void populeAtleta() {
		
		AtletaRN atletaRN = new AtletaRN();

		List<Atleta> listaAtletasDeletar = atletaRN.listar();
		
		Atleta a0 = new Atleta("Everalderson da Silva", "", "000");
		Atleta a1 = new Atleta("Mônica de Souza Freitas", "", "001");
		Atleta a2 = new Atleta("Maurício de Souza Aragão", "", "002");
		Atleta a3 = new Atleta("Josmélia Paxeco de Morais Ynca", "", "003");
		Atleta a4 = new Atleta("Boriclesia Chapecó Andrdade", "", "004");
		Atleta a5 = new Atleta("Hommer Simpson", "", "005");
		Atleta a6 = new Atleta("José Simplício", "", "006");
		Atleta a7 = new Atleta("Androricalio Amado Santana", "", "007");
		Atleta a8 = new Atleta("João Bom", "", "008");
		Atleta a9 = new Atleta("Delmir Felizardo", "", "009");

		for (Atleta atleta : listaAtletasDeletar) {
			atletaRN.excluir(atleta);
		}
		
		listaAtletasDeletar = atletaRN.listar();
		assertTrue(listaAtletasDeletar.size() == 0);
		
		
		
		a0.getEndereco().setLogradouro("Rua Pedro Salgado");
		a0.getEndereco().setBairro("Rua do Cisne");
		a1.getEndereco().setLogradouro("Rua Afonso Bigode");
		a1.getEndereco().setBairro("Bairro Navalha");
		a2.getEndereco().setLogradouro("Avenida Rio Molhado");
		a2.getEndereco().setBairro("Bairro barroso");
		a3.getEndereco().setLogradouro("Beco sem saída");
		a3.getEndereco().setBairro("Bairro da curva");
		a4.getEndereco().setLogradouro("Sítio do Pica pau amarelo");
		a4.getEndereco().setBairro("Bairro dos livros");
		a5.getEndereco().setLogradouro("Rua Holywood");
		a5.getEndereco().setBairro("Bairro talento raro");
		a6.getEndereco().setLogradouro("Rua macarrão");
		a6.getEndereco().setBairro("Bairro do apetite");
		a7.getEndereco().setLogradouro("Avenida cachoeirinha");
		a7.getEndereco().setBairro("Bairro Adaltos");
		a8.getEndereco().setLogradouro("Rua História sem Fim");
		a8.getEndereco().setBairro("Bairro barba branca");
		a9.getEndereco().setLogradouro("Rua cordas e sopros");
		a9.getEndereco().setBairro("Bairro musical");
		
		
		
		a0.setDataNascimento(new Date());
		a1.setDataNascimento(new Date());
		a2.setDataNascimento(new Date());
		a3.setDataNascimento(new Date());
		a4.setDataNascimento(new Date());
		a5.setDataNascimento(new Date());
		a6.setDataNascimento(new Date());
		a7.setDataNascimento(new Date());
		a8.setDataNascimento(new Date());
		a9.setDataNascimento(new Date());

		
		atletaRN.salvar(a0);
		atletaRN.salvar(a1);
		atletaRN.salvar(a2);
		atletaRN.salvar(a3);
		atletaRN.salvar(a4);
		atletaRN.salvar(a5);
		atletaRN.salvar(a6);
		atletaRN.salvar(a7);
		atletaRN.salvar(a8);
		atletaRN.salvar(a9);
		
		for(int i=0;i<100;i++) {
			atletaRN.salvar(new Atleta("João da Silva", "", ""+i));
		}
		
		List<Atleta> listaAtletas = atletaRN.listar();
		
		assertTrue(listaAtletas.size() > 0);
		
	}
	
	public void populeEquipes() {
		
		EquipeRN equipeRN = new EquipeRN();
		
		List<Equipe> equipesDeletar = equipeRN.listar();
		
		for (Equipe equipe : equipesDeletar) {
			equipeRN.excluir(equipe);
		}
		
		equipesDeletar = equipeRN.listar();
		assertTrue(equipesDeletar.size() == 0 );
		
		Equipe e0 = new Equipe("Estrela", "Incial", "obs");
		Equipe e1 = new Equipe("Ouro", "Encaminhado", "");
		Equipe e2 = new Equipe("Elegante", "Sem jeito", "agora vai");
		Equipe e3 = new Equipe("Vitória", "Verde", "");
		Equipe e4 = new Equipe("Nativos", "No ponto", "");
		Equipe e5 = new Equipe("Ostentação", "Final", "");
		
		List<Esporte> listaEsportes = new EsporteRN().listar();
		
		e0.setEsporte(listaEsportes.get(0));
		e1.setEsporte(listaEsportes.get(1));
		e2.setEsporte(listaEsportes.get(2));
		e3.setEsporte(listaEsportes.get(3));
		e4.setEsporte(listaEsportes.get(0));
		e5.setEsporte(listaEsportes.get(1));
		
		equipeRN.salvar(e0);
		equipeRN.salvar(e1);
		equipeRN.salvar(e2);
		equipeRN.salvar(e3);
		equipeRN.salvar(e4);
		equipeRN.salvar(e5);
		
		List<Equipe> equipes = equipeRN.listar();
		
		assertTrue(equipes.size() > 0 );
		
	}

	public void populeAvaliacaoFisica() {
		AvaliacaoFisica a0 = new AvaliacaoFisica(70.053f, 1.62f, "legal");
		AvaliacaoFisica a1 = new AvaliacaoFisica(65.536f, 1.20f, "+ ou -");
		AvaliacaoFisica a2 = new AvaliacaoFisica(87.236f, 1.80f, "bom");
		AvaliacaoFisica a3 = new AvaliacaoFisica(25.420f, 1.45f, "ruim");
		AvaliacaoFisica a4 = new AvaliacaoFisica(68.540f, 1.54f, "péssimo");
		AvaliacaoFisica a5 = new AvaliacaoFisica(97.750f, 1.26f, "excelente");
		
		AvaliacaoFisicaRN avaliacaoFisicaRN = new AvaliacaoFisicaRN();
		
		a0.setAtleta(new AtletaRN().pesquisarPorNome("Everalderson da Silva"));
		a1.setAtleta(new AtletaRN().pesquisarPorNome("Mônica de Souza Freitas"));
		a2.setAtleta(new AtletaRN().pesquisarPorNome("Maurício de Souza Aragão"));
		a3.setAtleta(new AtletaRN().pesquisarPorNome("Josmélia Paxeco de Morais Ynca"));
		a4.setAtleta(new AtletaRN().pesquisarPorNome("Boriclesia Chapecó Andrdade"));
		a5.setAtleta(new AtletaRN().pesquisarPorNome("Androricalio Amado Santana"));
		
		avaliacaoFisicaRN.salvar(a0);
		avaliacaoFisicaRN.salvar(a1);
		avaliacaoFisicaRN.salvar(a2);
		avaliacaoFisicaRN.salvar(a3);
		avaliacaoFisicaRN.salvar(a4);
		avaliacaoFisicaRN.salvar(a5);
	}
	
	public void populeEsportes() {
		Esporte e0 = new Esporte("Arremesso");
		Esporte e1 = new Esporte("Ping-Pong");
		Esporte e2 = new Esporte("Futebol");
		Esporte e3 = new Esporte("Basket");
		
		EsporteRN esporteRN = new EsporteRN();
		
		esporteRN.salvar(e0);
		esporteRN.salvar(e1);
		esporteRN.salvar(e2);
		esporteRN.salvar(e3);
	}
	
	public void formacaoEquipes() {

		AtletaRN atletaRN = new AtletaRN();
		EquipeRN equipeRN = new EquipeRN();
		
		assertTrue(atletaRN.listar().size() > 0);
		assertTrue(equipeRN.listar().size() > 0);
		
		Atleta a0 = atletaRN.pesquisarPorNome("Everalderson da Silva");
  	    Atleta a1 = atletaRN.pesquisarPorNome("Mônica de Souza Freitas");
		Atleta a2 = atletaRN.pesquisarPorNome("Maurício de Souza Aragão");
		Atleta a3 = atletaRN.pesquisarPorNome("Josmélia Paxeco de Morais Ynca");
		Atleta a4 = atletaRN.pesquisarPorNome("Boriclesia Chapecó Andrdade");
		Atleta a5 = atletaRN.pesquisarPorNome("Hommer Simpson");
		Atleta a6 = atletaRN.pesquisarPorNome("José Simplício");
		Atleta a7 = atletaRN.pesquisarPorNome("Androricalio Amado Santana");
		Atleta a8 = atletaRN.pesquisarPorNome("João Bom");
		Atleta a9 = atletaRN.pesquisarPorNome("Delmir Felizardo");
		
		
		Equipe e0 = equipeRN.pesquisarPorNome("Estrela");
		Equipe e1 = equipeRN.pesquisarPorNome("Ouro");
		Equipe e2 = equipeRN.pesquisarPorNome("Elegante");
		Equipe e3 = equipeRN.pesquisarPorNome("Vitória");
//		Equipe e4 = equipeRN.pesquisarPorNome("Nativos");
		Equipe e5 = equipeRN.pesquisarPorNome("Ostentação");

		
		e1.addAtleta(a0);
		e1.addAtleta(a1);
		e1.addAtleta(a2);
		e1.addAtleta(a3);
		e1.addAtleta(a4);
		
		e2.addAtleta(a7);
		e2.addAtleta(a8);
		e2.addAtleta(a9);
		
		e3.addAtleta(a3);
		e3.addAtleta(a4);

		e5.addAtleta(a3);
		e5.addAtleta(a4);
		e5.addAtleta(a5);
	
		e0.addAtleta(a3);
		e0.addAtleta(a4);
		e0.addAtleta(a6);

		atletaRN.alterar(a0);
		atletaRN.alterar(a1);
		atletaRN.alterar(a2);
		atletaRN.alterar(a3);
		atletaRN.alterar(a4);
		atletaRN.alterar(a5);
		atletaRN.alterar(a6);
		atletaRN.alterar(a7);
		atletaRN.alterar(a8);
		atletaRN.alterar(a9);

		assertTrue(true);
	}
	
	@Test
	public void popule() {
		populeAtleta();
		populeAvaliacaoFisica();
		populeEsportes();
		populeEquipes();
		formacaoEquipes();
		
//		Atleta a = new AtletaRN().pesquisarPorNome("Everalderson da Silva");
		
//		System.out.println("Atleta: " + a.getNome() + " peso: " + a.getUltimaAvaliacaoFisica().getPeso());
		
	}
	
}
